package cn.seocoo.platform.contrast.service;

import cn.seocoo.platform.car.dto.CarDto;
import cn.seocoo.platform.contrast.domain.CarContrast;
import java.util.List;

/**
 * 用户收藏车辆 服务层
 * 
 * @author wujian
 * @date 2020-01-02
 */
public interface ICarContrastService 
{
	/**
     * 查询用户收藏车辆信息
     * 
     * @param id 用户收藏车辆ID
     * @return 用户收藏车辆信息
     */
	public CarContrast selectCarContrastById(Integer id);
	
	/**
     * 查询用户收藏车辆列表
     * 
     * @param carContrast 用户收藏车辆信息
     * @return 用户收藏车辆集合
     */
	public List<CarContrast> selectCarContrastList(CarContrast carContrast);
	
	/**
     * 新增用户收藏车辆
     * 
     * @param carContrast 用户收藏车辆信息
     * @return 结果
     */
	public int insertCarContrast(CarContrast carContrast);
	
	/**
     * 修改用户收藏车辆
     * 
     * @param carContrast 用户收藏车辆信息
     * @return 结果
     */
	public int updateCarContrast(CarContrast carContrast);
		
	/**
     * 删除用户收藏车辆信息
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
	public int deleteCarContrastByIds(String ids);

	/**
	 * @Author WuJian
	 * @Description //查询当前用户是否收藏过当前车辆
	 * @Date 17:02 2020/1/2
	 * @Param [appUserId, carId]
	 * @return java.util.List<cn.seocoo.platform.contrast.domain.CarContrast>
	 **/
    List<CarContrast> selectCarContrastByUserAndCarId(Integer appUserId, Integer carId);

    /**
     * @Author WuJian
     * @Description //保存收藏的车辆信息
     * @Date 17:16 2020/1/2
     * @Param [appUserId, carId]
     * @return void
     **/
	int save(Integer appUserId, Integer carId);

	/**
	 * @Author WuJian
	 * @Description //TODO 查询收藏的车辆信息
	 * @Date 18:29 2020/1/2
	 * @Param [pageNum, pageSize, appUserId]
	 * @return java.util.List<cn.seocoo.platform.car.dto.CarDto>
	 **/
	List<CarDto> getCarList(Integer pageNum, Integer pageSize, Integer appUserId);

	/**
	 * @Author WuJian
	 * @Description //清空
	 * @Date 18:49 2020/1/2
	 * @Param [appUserId]
	 * @return int
	 **/
	int updateCarContrastForDel(Integer appUserId);

	/**
	 * @Author WuJian
	 * @Description //取消收藏
	 * @Date 18:55 2020/1/2
	 * @Param [id]
	 * @return int
	 **/
	int clearContrast(Integer id);
}
